package com.solutec.tag14polymorphie;

class Person{}

class Dozen extends Person{}

class Teilnehmer extends Person{
	String getKurs(){return "Java";}	
}

public class Thema3_Poly03Casting {

	public static void main(String[] args) {

		Teilnehmer t1= null;
		Dozen d1=null;
		Person p1=null;
		
		// -Der Compiler kennt  NIE Wert einer Variable!
		// -Der Compiler vergleicht die Typen 
		
		p1 = d1; // person <- IS-A <- Dozent: OK
		
//		t1 = p1; // Keine IS-A von rechts nach links
		
		p1 = new Teilnehmer(); // person <- IS-A <- Teilnehmer
//		p1 = new Dozen();
		
//		t1 = p1;
		t1 = (Teilnehmer)p1;
		
		// -Casting von referenzen ist NUR eine if-Abfrage:
//		if(!(p1 instanceof Teilnehmer)){
//			throw new ClassCastException("p1 zeigt NICHT auf einen Teilnahmer");
//		}
		
		System.out.println(t1.getKurs());
		
	}// end of main

}
